from airtest.core.api import *
from core.Airtest import AppAutomation


class Login_APP():
    def __init__(self, phone, password, username):
        """
        初始化登录所需的参数
        :param phone: 登录使用的手机号码
        :param password: 登录使用的密码
        :param username: 断言的用户名
        """
        self.phone = phone
        self.password = password
        self.username = username
        self.kuke = AppAutomation()

    def login(self):
        """执行登录操作并验证"""
        log("开始执行登录操作")  # 记录日志

        # 1. 打开登录页面
        self.kuke.click("com.kuke:id/tv_login")
        self.kuke.click("com.kuke:id/tv_title_right")

        # 2. 输入账号和密码
        log(f"输入手机号码: {self.phone}")
        self.kuke.set_text("com.kuke:id/et_password_login_phone", self.phone)
        log("输入密码")
        self.kuke.set_text("com.kuke:id/et_password", self.password)

        # 3. 同意隐私政策
        self.kuke.click("com.kuke:id/cb_privacy")

        # 4. 点击登录按钮
        self.kuke.click("com.kuke:id/tv_password_login")

        # 5. 点击“我的”按钮，跳转到个人页面
        self.kuke.click(text="我的")

        # 6. 断言用户名是否正确
        log("获取登录后用户名")
        name = self.kuke.get_text("com.kuke:id/tv_nick_name")
        log(f"登录后用户名为: {name}")

        log(f"进行断言检查，用户名是否为: {self.username}")
        self.kuke.assert_equal(name, self.username, msg="登录后用户名断言是否正确")
